-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(graphql): reimplement GraphQL API #294
Conversation
9b682ee
to
cf94adb
Compare
8755788
to
77649fa
Compare
/build_test |
Workflow started at 2/22/2024, 11:54:15 AM. View Actions Run. |
CI build and push: All tests pass ✅ (JDK21) |
@aali309 @mwangggg please give this an early "review" (more like look-over and manual test) since this includes the first piece of getting GraphQL back in. This is working off of an upstream feature branch, so the remaining GraphQL queries and mutations will get added to that branch (and this PR) by further PRs which will have their own reviews. Once it's all done this will merge into main so all of GraphQL gets in as a whole. |
CI build and push: All tests pass ✅ (JDK17) |
One notable difference is in how the Quarkus GraphQL extension handles 2.4:
3.0:
In short, rather than encoding a Java |
Working on |
77649fa
to
e6c3388
Compare
/build_test |
Workflow started at 2/29/2024, 12:06:43 AM. View Actions Run. |
CI build and push: All tests pass ✅ (JDK21) |
CI build and push: All tests pass ✅ (JDK17) |
I'm having to rethink the |
fcc623f
to
b8ddcd0
Compare
In #307 , I have updated the Jackson serialization so that any |
/build_test |
Workflow started at 2/29/2024, 5:06:49 PM. View Actions Run. |
CI build and push: All tests pass ✅ (JDK17) |
CI build and push: All tests pass ✅ (JDK21) |
working on |
* feat(graphql): add top-level query for targetNodes * return targets with distinct JVM IDs, implement archived recordings query * implement active recordings query * refactor enum registration * implement subqueries (actually nested mutations) for doStartRecording and doSnapshot * add mbeanMetrics query * messaging server uses shared ObjectMapper * add Jackson serialization customizer so Map<String, String> is encoded the same way GraphQL extension does
…ysis card (#312) * feat(graphql): implement features to support dashboard automated analysis card * disable JVM ID node filtering, populate archived recordings query with data * populate aggregate size * refactor * refactor to split out class
… missing mutations (#315)
/build_test |
Workflow started at 4/18/2024, 6:04:43 PM. View Actions Run. |
OpenAPI schema change detected: diff --git a/schema/openapi.yaml b/schema/openapi.yaml
index 3290d94..4ce4608 100644
--- a/schema/openapi.yaml
+++ b/schema/openapi.yaml
@@ -539,20 +539,44 @@ paths:
"200":
description: OK
"401":
description: Not Authorized
"403":
description: Not Allowed
security:
- SecurityScheme: []
tags:
- Recordings
+ /api/beta/recordings/{connectUrl}/{filename}/upload:
+ post:
+ parameters:
+ - in: path
+ name: connectUrl
+ required: true
+ schema:
+ type: string
+ - in: path
+ name: filename
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ "401":
+ description: Not Authorized
+ "403":
+ description: Not Allowed
+ security:
+ - SecurityScheme: []
+ tags:
+ - Recordings
/api/beta/recordings/{jvmId}:
get:
parameters:
- in: path
name: jvmId
required: true
schema:
type: string
responses:
"200":
|
CI build and push: All tests pass ✅ (JDK17) |
Welcome to Cryostat3! 👋
Before contributing, make sure you have:
main
branch[chore, ci, docs, feat, fix, test]
To recreate commits with GPG signature
git fetch upstream && git rebase --force --gpg-sign upstream/main
Fixes: #11
Includes:
Description of the change:
This is a roll-up PR which will include other PRs re-implementing various GraphQL features present in Cryostat 2.4. This first PR includes adding the GraphQL extension, plus implementing the first
rootNode
query and label selection matching.Motivation for the change:
Feature parity between the major release versions.
How to manually test:
$ http --follow -v --auth=user:pass :8080/api/v2.2/graphql query='query { rootNode { id name nodeType labels { key } descendantTargets(filter: { labels: ["io.openshift.tags in (go, rust, java)"] }) { id name nodeType labels { key value } } } }'
You can also retrieve the generated GraphQL schema to compare against 2.4's
queries.graphqls
andtypes.graphqls
.